using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;

using QLTDK.Entities.Base;

namespace QLTDK.Entities.BaseObjects
{
    public class BaseCtrCongtrinh : EntityObject<int>
    {
        #region Declarations

		private string tenCongTrinh = String.Empty;
		private System.DateTime? namThucHien = null;
		private string dinhDangSuDung = null;
		
		
		private IList<CtrDuytu> ctrDuytus = new List<CtrDuytu>();
		private IList<TdkTudieukhien> tdkTudieukhiensMaCongTrinh = new List<TdkTudieukhien>();
		private IList<TdTuyenden> tdTuyendens = new List<TdTuyenden>();
		private IList<TdkTudieukhien> tdkTudieukhiensMaCongTrinhLapDat = new List<TdkTudieukhien>();
		
		#endregion

        #region Constructors

		/// <summary>
        /// Since we want to leverage automatic properties, init appropriate members here.
        /// </summary>
		private void InitMembers()
		{
			CtrDuytus = new List<CtrDuytu>();
			TdkTudieukhiensMaCongTrinh = new List<TdkTudieukhien>();
			TdTuyendens = new List<TdTuyenden>();
			TdkTudieukhiensMaCongTrinhLapDat = new List<TdkTudieukhien>();
		}
		
		/// <summary>
        /// Creates valid entity object
        /// </summary>
		public BaseCtrCongtrinh() 
		{ 
			InitMembers();
		}
		
        #endregion

        #region Properties

		[DomainSignature]
		public virtual string TenCongTrinh
        {
            get { return tenCongTrinh; }
			set
			{
				tenCongTrinh = value;
			}
        }

		[DomainSignature]
		public virtual System.DateTime? NamThucHien
        {
            get { return namThucHien; }
			set
			{
				namThucHien = value;
			}
        }

		[DomainSignature]
		public virtual string DinhDangSuDung
        {
            get { return dinhDangSuDung; }
			set
			{
				dinhDangSuDung = value;
			}
        }

		[XmlIgnore]
		public virtual IList<CtrDuytu> CtrDuytus
        {
            get { return ctrDuytus; }
            protected set
			{
				ctrDuytus = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdkTudieukhien> TdkTudieukhiensMaCongTrinh
        {
            get { return tdkTudieukhiensMaCongTrinh; }
            protected set
			{
				tdkTudieukhiensMaCongTrinh = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdTuyenden> TdTuyendens
        {
            get { return tdTuyendens; }
            protected set
			{
				tdTuyendens = value;
			}
        }
		
		[XmlIgnore]
		public virtual IList<TdkTudieukhien> TdkTudieukhiensMaCongTrinhLapDat
        {
            get { return tdkTudieukhiensMaCongTrinhLapDat; }
            protected set
			{
				tdkTudieukhiensMaCongTrinhLapDat = value;
			}
        }
		
        #endregion
    }
}